package com.scheduling.product.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.scheduling.product.dto.OperationMaterialDTO;
import com.scheduling.product.entity.OperationMaterial;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工序原料关联数据访问层
 *
 * @author 开发团队
 * @since 2025-05-29
 */
@Mapper
public interface OperationMaterialMapper extends BaseMapper<OperationMaterial> {

    /**
     * 根据工序ID查询原料列表
     *
     * @param operationId 工序ID
     * @return 原料列表
     */
    List<OperationMaterialDTO> selectMaterialsByOperationId(@Param("operationId") String operationId);

    /**
     * 根据原料ID查询工序列表
     *
     * @param materialId 原料ID
     * @return 工序原料关联列表
     */
    List<OperationMaterial> selectByMaterialId(@Param("materialId") String materialId);

    /**
     * 根据工序ID删除原料关联
     *
     * @param operationId 工序ID
     * @return 删除数量
     */
    Integer deleteByOperationId(@Param("operationId") String operationId);

    /**
     * 批量插入工序原料关联
     *
     * @param operationMaterials 工序原料关联列表
     * @return 插入数量
     */
    Integer batchInsert(@Param("list") List<OperationMaterial> operationMaterials);
} 